'\" te
.\" Copyright (c) 2003, Sun Microsystems, Inc. All Rights Reserved.
.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License").  You may not use this file except in compliance with the License.
.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.  See the License for the specific language governing permissions and limitations under the License.
.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE.  If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
.TH DATADM 8 "August 13, 2023"
.SH NAME
datadm \- maintain DAT static registry file
.SH SYNOPSIS
.nf
\fB/usr/sbin/datadm\fR [\fB-v\fR] [\fB-u\fR] [\fB-a\fR service_provider.conf]
     [\fB-r\fR service_provider.conf]
.fi

.SH DESCRIPTION
The \fBdatadm\fR utility maintains the DAT static registry file,
\fBdat.conf\fR(5).
.sp
.LP
This administrative configuration program allows uDAPL service providers to add
and remove themselves to the \fBdat.conf\fR file.
.sp
.LP
You can add or remove interface adapters that a service provider supports from
a system after its installation. You can use \fBdatadm\fR to update the
\fBdat.conf\fR file to reflect the current state of the system. A new set of
interface adapters for all the service providers currently installed is
regenerated.
.SH OPTIONS
The following options are supported:
.sp
.ne 2
.na
\fB\fB-a\fR \fBservice_provider.conf\fR\fR
.ad
.RS 28n
Enumerate each device entry in the \fBservice_provider.conf\fR(5) file into a
list of interface adapters, that is, interfaces to external network that are
available to uDAPL consumers.
.RE

.sp
.ne 2
.na
\fB\fB-r\fR \fBservice_provider.conf\fR\fR
.ad
.RS 28n
Remove the list of interface adapters that corresponds to the device entry in
the \fBservice_provider.conf\fR(5) file.
.RE

.sp
.ne 2
.na
\fB\fB-u\fR\fR
.ad
.RS 28n
Update the \fBdat.conf\fR to reflect the current state of the system with an up
to date set of interface adapters for the service providers that are currently
listed in the DAT static registry.
.RE

.sp
.ne 2
.na
\fB\fB-v\fR\fR
.ad
.RS 28n
Display the DAT static registry file, \fBdat.conf\fR.
.RE

.SH EXAMPLES
\fBExample 1 \fREnumerating a Device Entry
.sp
.LP
The following example enumerates a device entry in the
\fBservice_provider.conf\fR(5) file into interface adapters in the
\fBdat.conf\fR(5) file.

.sp
.LP
Assume that \fBSUNW\fR has a service provider library that supports the device
\fBtavor\fR. It has a \fBservice_provider.conf\fR(5) file installed in the
directory \fB/usr/share/dat/SUNWudaplt.conf\fR with a single entry as follows:

.sp
.in +2
.nf
driver_name=tavor u1.2 nonthreadsafe default\e
    udapl_tavor.so.1 SUNW.1.0 ""
.fi
.in -2
.sp

.sp
.LP
\fBtavor\fR is an Infiniband Host Channel Adapter with two ports. Both IB ports
exist in a single IB partition, \fB0x8001\fR. If an IP interface is plumbed to
each port, there are two IPoIB device instances, \fBibd0\fR and \fBibd1\fR:

.sp
.in +2
.nf
# ls -l /dev/ibd*
/dev/ibd0 -> /devices/pci@1/pci15b3,5a44@0/ibport@1,8001,ipib:ibd0
/dev/ibd1 -> /devices/pci@1/pci15b3,5a44@0/ibport@2,8001,ipib:ibd1
.fi
.in -2
.sp

.sp
.LP
Running the command, \fBdatadm -a /usr/share/dat/SUNWudaplt.conf\fR appends two
new entries (if they do not already exist) in the
\fB/etc/dat/dat.conf\fR file:

.sp
.in +2
.nf
ibd0 u1.2 nonthreadsafe default udapl_tavor.so.1 SUNW.1.0 ""
"driver_name=tavor"
ibd1 u1.2 nonthreadsafe default udapl_tavor.so.1 SUNW.1.0 ""
"driver_name=tavor"
.fi
.in -2

.LP
\fBExample 2 \fRUpdating the \fBdat.conf\fR to Reflect the Current State of the
System
.sp
.LP
A new IB partition, 0x8002 is added to the above example covering port 1 of the
Host Channel Adapter. If a new IP interface is plumbed to \fBport 1/partition
0x8002\fR, there is a third IPoIB device instance: \fBibd2\fR.

.sp
.in +2
.nf
# ls -l /dev/ibd*
 /dev/ibd0 -> /devices/pci@1/pci15b3,5a44@0/ibport@1,8001,ipib:ibd0
 /dev/ibd1 -> /devices/pci@1/pci15b3,5a44@0/ibport@2,8001,ipib:ibd1
 /dev/ibd2 -> /devices/pci@1/pci15b3,5a44@0/ibport@1,8002,ipib:ibd2
.fi
.in -2
.sp

.sp
.LP
Running \fBdatadm -u\fR command, updates the \fB/etc/dat/dat.conf\fR file with
a new entry added reflecting the current state of the system.

.sp
.LP
\fBdatadm -v\fR shows that there are now three entries in the
\fB/etc/dat/dat.conf\fR file:

.sp
.in +2
.nf
ibd0 u1.2 nonthreadsafe default udapl_tavor.so.1 SUNW.1.0 ""
"driver_name=tavor"
ibd1 u1.2 nonthreadsafe default udapl_tavor.so.1 SUNW.1.0 ""
"driver_name=tavor"
ibd2 u1.2 nonthreadsafe default udapl_tavor.so.1 SUNW.1.0 ""
"driver_name=tavor"
.fi
.in -2
.sp

.SH FILES
.ne 2
.na
\fB\fB/etc/dat/dat.conf\fR\fR
.ad
.RS 21n
DAT static registry file
.RE

.SH ATTRIBUTES
See \fBattributes\fR(7) for descriptions of the following attributes:
.sp

.sp
.TS
box;
c | c
l | l .
ATTRIBUTE TYPE	ATTRIBUTE VALUE
_
Interface Stability	Evolving
.TE

.SH SEE ALSO
.BR libdat (3LIB),
.BR dat.conf (5),
.BR service_provider.conf (5),
.BR attributes (7)
